package kn.tool.http;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

import java.util.Map;

/**
 * @author: dengkunnan
 * @date: 2020-07-12 01:20
 * @description:
 **/
public class HttpClientUtil {

    /**
     * 带参数的get请求
     *
     * @param url    请求url
     * @param params 请求参数
     * @return 请求结果对象
     */
    public static HttpResponse get(String url, Map<String, Object> params) {
        return HttpRequest.get(url).form(params).execute();
    }

    /**
     * 不带参数的get请求
     *
     * @param url 请求url
     * @return 请求结果对象
     */
    public static HttpResponse get(String url) {
        return HttpRequest.get(url).execute();
    }

    /**
     * Restful请求,带json参数的post请求
     *
     * @param url        请求url
     * @param jsonParams json格式参数
     * @return 请求结果对象
     */
    public static HttpResponse post(String url, String jsonParams) {
        return HttpRequest.post(url).body(jsonParams).execute();
    }

    /**
     * Restful请求,带json参数的post请求
     * 链式构建请求
     *
     * @param url        请求url
     * @param jsonParams json格式参数
     * @return 请求结果对象
     */
    public static HttpResponse post(String url, String jsonParams, Map<String, Object> headerMap) {
        HttpRequest httpRequest = new HttpRequest(url);
        for (String key : headerMap.keySet()) {
            httpRequest.header(key, headerMap.get(key).toString());
        }
        httpRequest.form(jsonParams);
        httpRequest.timeout(3000);
        return httpRequest.execute();
    }
}
